Coordinated robotic control

ABSTRACT

Device coordinated robotic control technology is described. A network of robotic devices is established. An anthropomorphic motion is sensed from an operator. One or more signals are generated that are representative of at least a portion of the anthropomorphic motion. The one or more signals are converted into a collective set of commands to actuate the network of robotic devices. The collective set of commands is functionally equivalent to the anthropomorphic motion.

BACKGROUND

Robots are electro-mechanical machines that are controlled by one ormore computer programs and/or electronic circuitry. Autonomous robotsare robots that can perform desired tasks in unstructured environmentswithout continuous human guidance. Semi-autonomous robots andnon-autonomous robots, in contrast, often require human guidance.

Robots are used in a variety of fields, including for example,manufacturing, space exploration, and medicine. Specialized robots aregenerally designed to perform a single task or a single set of taskslike painting a body of a car.

Humanoid robots are a category of robots that attempt to emulate somehuman tasks including dirty or dangerous jobs. A humanoid robot is arobot with its body shape built to resemble that of the human body. Ahumanoid might be designed for functional purposes, such as interactingwith human tools and environments. In general, humanoid robots have atorso, a head, two arms, and two legs. Some humanoid robots may alsohave heads designed to replicate human sensory features such as eyes orears.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a network of robotic devices, in accordance with oneexemplary embodiment.

FIG. 2 illustrates another view of the example network of roboticdevices of FIG. 1.

FIG. 3 illustrates an example portion of a coordinated robotic controlsystem being used by an operator.

FIG. 4 is a component block diagram illustrating an example coordinatedrobotic system.

FIG. 5 illustrates an example serpentine robotic crawler.

FIG. 6 illustrates an example of serpentine robotic crawler beingcontrolled by an operator.

FIG. 7 is a flowchart illustrating an example coordinated roboticcontrol method for a network of robotic devices.

FIG. 8 is block diagram illustrating an example of a computing devicethat may be used in coordinated robotic control.

DETAILED DESCRIPTION

A coordinated robotic control technology is described. In particular,the technology may allow coordinated use of two or more robots as anetwork of robotic devices. The network of robotic devices may be ableto remotely accomplish various coordinated human-like, or complex ormultifaceted tasks, or even simple coordinated tasks (hereinafter“coordinated tasks”). A human operator may provide control bymanipulating a set of sensors. A single robotic device in the network ofrobotic devices may accomplish a portion of a human-like task in abounded environment while the remaining robotic devices in the networkof robotic devices may accomplish the remaining portions of thehuman-like task in the bounded environment. In such an arrangement, aremotely located operator could wear a mastering device that carried outreal-time measurement of his/her joint positions, displayed by a singleor stereo presentation of the views to a head-mounted display, forexample, and communicate the desired motions to the collection ofrobotic devices within the network of robotic devices, which could carryout the motions as though they were anatomically consistent with theoperator. In short, the operator would not necessarily be concerned thathis interface with the objects in the environment was via a number ofrobotic devices, none of which is a humanoid robot, just that they arecollectively able to function as though they were, within the context ofthe environment in which they are located. The coordinated use ofmultiple robots can be made to act like a single unit. This can occurwithout the necessity of the robotic devices being physically connected.

As one example, driving a vehicle may be a human-like task involvingseveral different types of anthropomorphic motions to accomplish onehuman-like task. These human-like tasks might include, for example,turning a steering wheel, flipping on a turn signal, engaging a clutch,moving a shifter, increasing acceleration with an accelerator, andapplying a brake.

As a more particular example, an operator may indicate flipping on theturn signal by moving a left hand in a downward motion on an edge of aremote steering wheel prop while keeping a right hand fixed on theremote steering wheel prop. A set of sensors may be advantageouslyplaced on or around the operator to detect such motion. This motion maythen be carried out by the network of robotic devices. One roboticdevice in the network of robotic devices might hold the steering wheelsteady while another robotic device may flip the turn signal on, forexample.

Accordingly, with reference to FIG. 1 and FIG. 2, an example network ofrobotic devices 100 is illustrated. In particular, the network ofrobotic devices 100 includes four robotic devices 102 a-d. A camera 106also acts as a feedback device providing visual information to anoperator of the network of robotic devices 100.

The network of robotic devices 100, are operating in an environment 104.More particularly, the environment 104 is a driver's area in a vehicle.The robotic devices 102 a-d may receive a command and actuate a motionbased on the command. In this way, the network of robotic devices 100may act in a coordinated fashion to perform human-like tasks. Theoperator may be remotely located and provide anthropomorphic motionthrough a set of sensors to control the network of robotic devices 100.More robotic devices may be added to the network of robotic devices 100in order to perform more complex tasks, or tasks requiring a greaterrange of motion.

As an example, to drive a vehicle as illustrated, a human may need to beable to see, turn a steering wheel, engage a turn signal, move ashifter, press an accelerator or press a brake. Rather than implementinga single human form factor robotic device, four robotic devices 102 a-dmay act in a coordinated fashion to provide functionally equivalentmotion to that of the operator.

More particularly, the robotic device 102 a may be positioned on a seatto be able to position the camera 106 to see through a windshield andlatterly out side windows and rear view mirrors of the vehicle. Therobotic device 102 b may also be positioned on the seat and may turn thesteering wheel of the vehicle. The robotic device 102 c may bepositioned on the seat and may engage the turn signal and/or move theshifter. The robotic device 102 d may be positioned on the floor and maypress the accelerator or the brake. In this way, the network of roboticdevices 100 may act in a coordinated way to perform human-like tasks.

FIG. 3 illustrates an example portion of a coordinated robotic controlsystem being used by an operator 300. In particular, the coordinatedrobotic control system includes a plurality of control sensors 306, 308,310, 312, 314, 316 to sense anthropomorphic motion from the operator300. When the operator 300 moves, the control sensors 306, 308, 310,312, 314, 316 sense the motion and generate an output signalrepresentative of the motion. The control sensors 306, 308, 310, 312,314, 316 for example, may be accelerometers or digital positioningdevices that provide three-dimensional coordinates for the sensors. Asanother example, the sensors 306, 308, 310, 312, 314, 316 may measureangular rotation or pressure or force of the operator's 300 joints. Theplurality of control sensors may be attached to an operator, or maysense motion from some distance from the operator. For example, a radaror LIDAR, or other 3D depth-sensing device may be placed a few feet froman operator and pointed towards the operator to sense a portion of theanthropomorphic motion. Various combinations of sensors may be used tosense the anthropomorphic motion of the operator 200.

The coordinated robotic control system may also include a coordinatedrobotic control device. The coordinated robotic control device iscommunicatively connected to the plurality of control sensors 306, 308,310, 312, 314, 316 and may convert the anthropomorphic motion sensed bythe plurality of control sensors 306, 308, 310, 312, 314, 316 into acollective set of commands. The collective set of commands may actuate aplurality of robotic devices, such as those described in FIGS. 1 and 2.In this way, the collective set of commands may actuate one or moreserpentine robotic crawlers, such as those shown and described in U.S.patent application Ser. No. 14/026,284 filed on Sep. 13, 2013 and Ser.No. 13/665,669 filed on Oct. 31, 2012, each of which are incorporated byreference in their entirety herein.

The motion within the network of robotic devices actuated by thecollective set of commands can be functionally equivalent to theanthropomorphic motion sensed by the plurality of control sensors. Forexample, the motion may be the operator 200 pulling back a foot, movingthe foot towards the left and pushing the foot forward, to simulatemovement of a foot from an accelerator pedal to a brake pedal (i.e.,this may comprise a desired lower level task that may be considered ortermed a sub-task to the higher level coordinated task of driving a carto be completed by the network of robotic devices). While, as depictedin FIGS. 1 and 2, the functionally equivalent motion performed by therobotic device 102 d may not include a single robotic foot moving froman accelerator pedal to a brake pedal, one end of the robotic device 102d may disengage the accelerator pedal while the other end of the roboticdevice 102 d may engage the brake pedal. In this way, the objects in theenvironment of the robotic device 102 d, namely the accelerator pedaland the brake pedal, are acted upon in a functionally equivalent manner.Thus, the plurality of robotic devices may receive commands and actuateone or more motions based on the commands, such that the collective setof commands results in movement or motions by the robotic devices thatare functionally equivalent or substantially functionally equivalent tothe anthropomorphic motions of the operator (i.e., those motions withinthe network needed to accomplish the coordinated task). As will bedescribed in more detail later, the functionally equivalent motionswithin the network of robotic devices can be carried out by one or aplurality of robotic devices, the motions being coordinated (e.g.,motions by two or more robots used to carry out a task initiated by theoperator).

The coordinated robotic control device may be housed in a backpack 302,as illustrated in FIG. 3, or may be housed in another location andcommunicatively connected to the plurality of control sensors 306, 308,310, 312, 314, 316. Similarly, the coordinated robotic control systemmay also include one or more feedback devices, such as a video device304. In this way, feedback may be sensed from the network of roboticdevices.

The robotic control device may use one or more computer systemsconfigured with executable instructions to convert the anthropomorphicmotion to the collective set of commands. In this way, the backpack 302may house a programmable computer with software instructions configuredto perform the conversion. The backpack 302 may also house circuitryimplementing similar processing to perform the conversion.

Once the anthropomorphic motion, as sensed by the plurality of controlsensors 306, 308, 310, 312, 314, 316, has been converted into acollective set of commands, the collective set of commands may becommunicated to the network of robotic devices. Distribution of thecollective set of commands may be performed in a variety of ways. Forexample, a respective subset of commands may be communicated to eachrobotic device in the network of robotic devices. In this way, eachrobotic device in the network of robotic devices may directly receive asubset of commands. Alternatively, the network of robotic device mayinclude a master robotic device and one or more slave robotic devices.The master robotic device may receive the collective set of commands andthen may distribute the collective set of commands to the network ofrobotic devices as appropriate. In this way, each robotic device in thenetwork of robotic devices may receive a subset of commands eitherdirectly (e.g. the master robotic device) or indirectly by way of themaster robotic device (e.g. the slave robotic devices).

FIG. 4 is a component block diagram illustrating an example coordinatedrobotic system. The system 400 may be used to implement thefunctionality heretofore described with reference to FIGS. 1-3 orfurther examples discussed below with reference to FIGS. 5-8. The system400 may include one or more computing devices 406, a network of roboticdevices 410, a set of feedback devices 412 and a set of sensors 402. Anetwork 408 may communicatively connect the set of feedback devices 412and the network of robotic devices 410 with the computing device 406.

The network 408 may include any useful computing or signal network,including an intranet, the Internet, a local area network (LAN), a widearea network (WAN), a wireless data network, a cell network, a direct RFlink, a stateless relay network or any other such network or combinationthereof, and may utilize a variety of protocols for transmissionthereon, including for example, Internet Protocol (IP), the transmissioncontrol protocol (TCP), user datagram protocol (UDP) and othernetworking protocols. Components utilized for such a system may dependat least in part upon the type of network and/or environment selected.Communication over the network may be enabled by wired, fiber optic, orwireless connections and combinations thereof.

Each of the robotic devices 460 a-d in network of robotic devices 410,along with each feedback device 470 a-b in the set of feedback devices412 and each of the sensors 420 a-i in the set of sensors 402 may eachhave certain data processing and storage capabilities. A robotic device,for instance, may have a processor, a memory and a data store, forexample. Likewise a feedback device or a sensor may also have aprocessor, a memory and a data store. Further all devices may havenetwork interfaces circuitry (NIC) for interfacing with the network 408.The computing device 434, for instance, depicts a NIC 436 for thecomputing device 434.

While the network of robotic devices 410 and the set of feedback devices412 are depicted as being connected through the network 408 to thecomputing device 406, it is appreciated that the network of roboticdevices 410 and the set of feedback devices 412 may be connected throughseparate networks to the computing device 406. Further, while the set ofsensors 402 is shown as directly connecting to the computing device 406through a local interface 404, it is appreciated that the set of sensors402 may connect through a network such as the network 408 to communicatewith the computing device 496.

The computing device 406 may comprise, for example, a server computer orany other system providing computing capability. Alternatively, aplurality of computing devices 406 may be employed that are arranged,for example, in one or more server banks or computer banks or otherarrangements. For purposes of convenience, the computing device 406 maybe referred to in the singular, but it is understood that a plurality ofcomputing devices 406 may be employed in various arrangements asdescribed above.

Various processes and/or other functionality, as discussed herein, maybe executed in the system 400 according to various examples. Thecomputing device 406, may for example, provide some central serverprocessing services while other devices in the coordinated roboticsystem 400 may provide local processing services and interfaceprocessing services to interface with the services of the computingdevice 406. Therefore, it is envisioned that processing services, asdiscussed herein, may be centrally hosted functionality or a serviceapplication that may receive requests and provide output to otherservices or customer devices.

For example, services may be considered on-demand computing that ishosted in a server, cloud, grid, or cluster computing system. Anapplication program interface (API) may be provided for each service toenable a second service to send requests to and receive output from thefirst service. Such APIs may also allow third parties to interface withthe service and make requests and receive output from the service. Aprocessor 430 may provide processing instructions by communicating witha memory 432 on the computing device 406. That is, the memory device mayinclude instructions operable to be executed by the processor to performa set of actions. The processor 430 and/or the memory 432 may directlyor indirectly communicate with a data store 434. Each robotic device inthe network of robotic devices 410, each sensor in the set of sensors402 and each feedback device in the set of feedback devices 412, mayinclude similar processing capabilities. Alternatively, some or all ofthe processing capabilities may be provided by the computing device 406or other devices in the coordinated robotic system such as a masterrobotic device.

Various data may be stored in a data store 434 that is accessible to thecomputing device 406. The term “data store” may refer to any device orcombination of devices capable of storing, accessing, organizing and/orretrieving data, which may include any combination and number of dataservers, relational databases, object oriented databases, cloud storagesystems, data storage devices, data warehouses, flat files and datastorage configuration in any centralized, distributed, or clusteredenvironment. The storage system components of the data store 434 mayinclude storage systems such as a SAN (Storage Area Network), cloudstorage network, volatile or non-volatile RAM, optical media, orhard-drive type media. The data store 434 may be representative of aplurality of data stores 434.

The data stored in the data store 434 may include, for example, anenvironment data store 440, a robot state data store 442, a sensor datastore 444 and a feedback data store 446. The environment data store 440may include details about the environment in which the robotic devices460 a-d are configured to operate effectively. In this way theenvironment data store may contain some information regarding thefunctional limitation of the system 400 and include informationregarding conversion of the sensed anthropomorphic motion into acollective set of commands to actuate degrees of motion by the networkof robotic devices 410. Thus an environment may be programmaticallydefined for a kinematic convertor module 454 which limits functionalequivalency. For example, the environment may be programmaticallydefined with an extensible markup language (XML) document and stored inthe data store 440. Another standard that may be used is the jointarchitecture for unmanned systems (JAUS). The robot state data store 442may include details about the state of the robotic devices 460 a-d suchas positioning information, loading information, velocity information,acceleration information, location information, signal strengthinformation, stability information, and environmental surrounds. Thesensor data store 444 may act as a buffer or processing area for dataprovided by the sensors 420 a-i. Likewise, the feedback data store 446may also act as a buffer or processing area for data provided byfeedback devices 470 a-b.

A sensor module 450 may provide an interface for receiving andprocessing data from the set of sensors 402. In this way, the sensormodule 450 may interact with the sensor data store 444 and other modulessuch as a kinematic converter module 454. Thus a control sensor may beconfigured to sense anthropomorphic motion and communicate theanthropomorphic motion to the computing device 406. A Feedback module452 may be an interface for the set of feedback devices 412 and mayinteract with the feedback data store 446. In this way, a feedbackdevice may be configured to receive robotic feedback. Sensed feedbackmay then be presented to an operator through actuating an operatordevice, generating audio, engaging vibratory pads, or through a visualdisplay. Moreover, received feedback may be presented to an operatorthrough a device integrated with at least one of a plurality of controlsensors, for instance.

The kinematic convertor module 454 may convert the anthropomorphicmotion, sensed by the sensors 420 a-i, into a collective set of commandsto actuate degrees of motion by one or more robotic devices 460 a-dwithin the network of robotic devices 410. The collective set ofcommands can be functionally equivalent or substantially equivalent tothe anthropomorphic motion, meaning that a function carried out by theuser is equivalently carried out within the network of robotic devices410 by one or a plurality of robotic devices. In this way, the kinematicconvertor module 454 may interact with the sensor data store 444, theenvironment data store 440 and the robot state data store 442. Moreover,the kinematic convertor module 454 may also interact with other modulessuch as an actuation module 456 to communicate the collective set ofcommands to the network of robotic devices 410 for actuation thereby. Inthis way, the actuation module 456 may provide an interface for sendingcommands to the network of robotic devices 410 for actuation. Thus, thekinematic convertor module 454 may be configured to convert ananthropomorphic motion, sensed by the plurality of control sensors, intoa collective set of commands to actuate degrees of motion by the networkof robotic devices, wherein the collective set of commands arefunctionally equivalent to the anthropomorphic motion, and acommunication interface may be configured to communicate with thenetwork of robotic devices 410. Any of the feedback devices 420 a-i mayinclude devices such as a video display, an audio speaker, or a tactilefeedback device. Further, the plurality of control sensors may sensethree-dimensional motion.

In one embodiment, the kinematic converter module 454 may be configuredbeforehand to anticipate scenarios in which the robots 460 a-d may beused in. For example, the kinematic converter module 454 may includepre-programmed primitives designed for a specific high level task, suchas driving a car, placing physiologic sensors on an unconscious human,or operating a control panel that is in a hazardous environment. In thisway, an operator may be assured that the robotic devices within thenetwork 460 a-d collectively comprise sufficient degrees of freedom inorder to carry out specific tasks within the environment. Nonetheless,the collection of robots can be configured and reconfigured to carry outnew or different tasks within the same or different environments. Forexample, the collection of robots may be configured in a travel mode andindividually operated to move from one location to another, wherein uponreaching a desired destination the collection of robotic devices maythen be reconfigured and located in a position capable of carrying outor accomplishing the desired task. For illustrative purposes only, aplurality of serpentine (snake-like) robots may be individuallyconfigured in a travel or drive mode to gain access to a desiredenvironment via a dimensionally restricted route (e.g., down a boreholeor mineshaft), and then reconfigured and positioned within the desiredenvironment to provide coordinated dexterous tasks within theenvironment, such as being positioned within a vehicle, wherein the taskto be accomplished is the driving of the vehicle. Once in position, theoperator can carry out the dexterous tasks within the environment viatele-operation using, for example, a mastering device that iskinematically consistent with the operator, wherein output from themastering device is transformed to provide commands to the roboticdevices within the network to accomplish what otherwise could have beenaccomplished had the commands been sent to a kinematically equivalentslave robot.

In one exemplary embodiment illustrating coordinated control of thevarious robotic devices, the sensors 420 a-i may include defined zonesor bounded areas of control space. Corresponding operator movementwithin these zones of control space may indicate control of one or morerobots 460 based upon the operator movement. Once the operator leaves azone of control space, a sensor 420 may no longer interpret operatormovement as controlling one or more robots 460. However, another zone ofcontrol for another sensor 420 may interpret operator movement ascontrolling one or more other robots 460 from within that zone ofcontrol (i.e., other degrees of freedom used to accomplish the task). Inother words, a single motion by an operator across multiple definedzones may cause multiple degrees of freedom to activate within thenetwork of robotic devices, which multiple degrees of freedom may beacross or located about multiple robotic devices. Such zones ofoperation can be based on or determined by factors such as theenvironment itself, the ranges of motion of the various robotic deviceswithin the network of robotic devices, the ranges of motion of theindividual degrees of freedom of the various robotic devices, theparticular location and number of robotic devices, and others. The zonesof operation can be represented numerically (such as in terms of theirCartesian coordinates relative to a reference point), graphically (e.g.,mapped environment), or by any other system or method or means apparentto those skilled in the art used to define a range of motion of a degreeof freedom of a robotic device.

FIG. 5 illustrates an example serpentine robotic crawler 500, which issimilar to the robotic crawler described in U.S. patent application Ser.No. 14/026,284, filed Sep. 13, 2013, and entitled, “Serpentine RoboticCrawler for Performing Dexterous Operations,” (Attorney Docket No.2865-12.3329.US.NP), which is incorporated by reference in its entiretyherein. The serpentine robotic crawler 500 may be used as a roboticdevice in the network of robotic devices and may include a plurality ofdexterous manipulators that can be positioned and articulated to performdexterous operations in a variety of situations, some of which will bediscussed in detail below. As shown, a first dexterous manipulator 562can be coupled about a distal end 556 of a first frame 568, and a seconddexterous manipulator 522 can be coupled about a distal end 516 of asecond frame 528. Frames 568, 528 can comprise a distal end 556 and 516,respectively, and a proximal end 550 and 510, respectively. Theserpentine robotic crawler can further comprise a propulsion systemconfigured to cause the frames 568 and 528 to move about a ground orother surface, and relative to one another, such as to achieve differentconfigurations and propulsion modes. The propulsion system can comprisea drive subsystem 554, which can be supported about and operable withframe 568, and a similar drive subsystem 514, which can be supportedabout and operable with frame 528. The drive subsystems may includevarious motors, drive trains, controls, etc. The propulsion system mayfurther comprise one or more surface contacting elements that facilitatepropulsion of the serpentine robotic crawler, such as a continuous orendless track 552 rotatably supported about frame 568 operable withdrive subsystem 554, and continuous or endless track 512 rotatablysupported about frame 528 and operable with drive subsystem 514.Addition of the rotatable endless tracks 552 and 556 to their respectiveframe units provides mobility to the serpentine robotic crawler 500 in away that allows the serpentine robotic crawler 500 to move about theground or other surfaces, and to overcome numerous obstacles. Othertypes of surface contacting elements may be employed, as will berecognized by those skilled in the art, such as wheels, rotating joints,etc., each of which are contemplated herein.

The robotic serpentine device 500 can further comprise a multiple degreeof freedom linkage arm 540 coupling together the frames 568 and 528 ator near proximal ends 550 and 510 of each respective frame 568 and 528.In one exemplary embodiment, the multiple degree of freedom linkage arm540 can be moveable relative to frames 568 and 528. Movement of themultiple degree of freedom linkage arm 540 can be passive, actuated, orbraked. In the embodiment shown, the multiple degree of freedom linkagearm 540 can include pivoting articulating joints 580 a-e and rotatingarticulating joints 590 a-b. All or some of these articulating joints580 a-e and 590 a-b can be actuatable to achieve selective positioningof the joints relative to one another and the frames 568, 528. Indeed,the articulating joints can facilitate the serpentine robotic crawler500 assuming a variety of configurations and positioning of the firstand second frames 568, 528 relative to one another, and also the firstdexterous manipulator 562 relative to the second dexterous manipulator524. The serpentine robotic crawler 500 can assume a tank-likeconfiguration having the frames 568, 528 and the rotatable endlesstracks 552 and 512 in a side-by-side arrangement with each other. Inother situations, the serpentine robotic crawler 500 can assumealternative configurations, such as configuration with the frame unitsin a tandem relationship relative to one another. These differentconfigurations are discussed in more detail below.

Frame units 568 and 528 may each be equipped with stops 570 and 530,respectively, or other limiter devices or systems, which may limit thedegree of rotation of the multiple degree of freedom linkage arm 540,such that the joints coupled to frames 568 and 528 are prohibited fromrotating to such a degree that the joints interfere with the operationof the endless tracks 550 and 510.

The dexterous manipulators 562 and 522 may each comprise respectivejointed members 558 and 518 pivotally connected or coupled to orotherwise about the distal ends 556 and 516 of frames 568 and 528,respectively. The jointed members 558 and 518 can help facilitate thedexterous manipulators 562, 522 being capable of operating orfunctioning in a wrist-like manner, meaning to move in multiple degreesof freedom about multiple different axes similar to the human wrist.

One or both of the dexterous manipulators 562 and 522 can furthercomprise an end effector (e.g., see end effectors 560 and 520 operablewith jointed members 558 and 518, respectively) configured to operate onor manipulate, or otherwise interface with a work piece (e.g., anobject, another end effector, the ground or other surface, etc.).Essentially, the dexterous manipulators 562 and 522, with their endeffectors 560 and 520, respectively, can be configured to manipulate orotherwise interface with an object or thing for the purpose ofperforming a dexterous operation.

The end effectors 562, 522 can comprise a variety of differentconfigurations, depending upon the task to be performed. For example,the end effectors can be designed to comprise components operable toapply two opposing forces on a work piece giving it some functionalitysimilar to a human hand. In one aspect, such as in the embodiment shown,the end effectors may comprise opposing finger components that moverelative to one another, and that are configured to apply opposingforces in a direction towards one another, or to constrict, similar to ahuman finger against an opposable thumb. In another aspect, the endeffectors may comprise components configured to be operated to applycounter or opposing forces in a direction away from one another, or toexpand.

The unique positioning capabilities of the frames and articulatinglinkage of the serpentine robotic crawler, along with the jointedmembers 558 and 518 in conjunction with their respective end effectors560 and 520, facilitates dynamic positioning of the serpentine roboticcrawler, and more particularly its dexterous manipulators 562, 522,relative to one or more given work pieces, and/or relative to eachother. Further, similar to the stops 570 and 530 between the multipledegree of freedom linkage arm 540, stops 566 and 526 may be affixed torespective frames 568 and 528 in order to ensure that the jointedmembers 558 and 518 do not interfere with respective rotating endlesstracks 522 and 512.

To provide additional dexterity to, and to facilitate enhancedpositioning and capabilities of, the dexterous manipulators 562 and 522,one or both of the dexterous manipulators 562 and 522 may furthercomprise a rotational joint, such as rotational joints 564 and 524,operable with the jointed members 516, 558 and the end effectors 560,520, respectively, to allow the dexterous manipulators 562, 522 tofunction in a wrist-like manner having multiple degrees of freedom(e.g., to provide pitch, yaw and roll functionality to or as imparted tothe end effector). Each of the rotational joints 564 and 524 can berotatably coupled to the jointed members 516, 558 and configured torotate (i.e., twist) back and forth within a full 360 degrees about theend of jointed members 558, 518, respectively about axis B.Additionally, rotational joints 564 and 524 may also be configured suchthat they may rotate continuously, i.e. they may be able to performinfinite continuous and successive complete revolutions in a first orclockwise direction as well as in an opposing, second orcounterclockwise direction. Further, each end effector 560 and 520 maybe pivotally coupled to the rotational joints 564 and 524, respectively,and configured to pivot in a bi-directional manner within a range (e.g.,0-360 degrees; 0-180 degrees, etc. as measured about axis B, anddepending upon the design and configuration of the dexterous manipulatorand the various joints therein). The various degrees of freedom providedby the jointed members, the rotational joints and the end effector, asoperably coupled together, as well as the various degrees of freedomwithin the articulated linkage allow the dexterous manipulators 562,522, and particularly the end effectors 560 and 520, to be positioned invirtually any orientation with respect to their respective frames 568,528 and a workpiece, or with respect to each other.

The various components of the serpentine robotic crawler can be activelyarticulated or passively articulated. For example, in one exemplaryembodiment, dexterous manipulators 562 and 522, as well as the variousjoints making up the multiple degree of freedom linkage arm 540, may beactively actuated using servo motors, driveshaft systems, chain drivesystems, hydraulic systems, tendon/pulley type systems, or any othersuitable actuation means as will be recognized by those skilled in theart. Alternatively, the dexterous manipulators 562, 522, as well as thevarious joints in the multiple degree of freedom linkage arm 540, may beoperated using one or more types of passive systems, such as brakingsystems, locking systems, or any other suitable system capable ofmaintaining these in a locked position. These active or passivearticulation systems can operate to facilitate positioning of thevarious movable joints of each respective dexterous manipulator 562 and522, as well as the multiple degree of freedom arm 540 to place thedexterous manipulators 562, 522 in a desired or needed position.

It should be noted that for the particular embodiment shown in FIG. 5,the configurations and features described in relation to frame 568 andassociated dexterous manipulator 562 can be similarly applicable toframe 528 and its associated dexterous manipulator 522. Nonetheless,frame 528 and dexterous manipulator 562 can be configured differently,such as to employ varying end effectors, wrists and jointed members, asthose skilled in the art will appreciate, which different configurationsare contemplated herein.

FIG. 6 illustrates an example of serpentine robotic crawler 600 beingcontrolled by an operator 602. The serpentine robotic crawler 600comprising frame units and dexterous manipulators 606, 608 held to anobject (e.g. to a ferromagnetic material wall) by a clamping device 604(e.g. suction cups, gripper, or magnetic clamp, such as an electromagnetor permanent magnets with variable flux return path to control theclamping force). As described herein, the serpentine robotic crawler 10can perform single or two-handed dexterous operations.

FIG. 7 is a flowchart illustrating an example coordinated roboticcontrol method 700. In method element 702, a network of robotic devicesis established. In method element 704, an anthropomorphic motion may besensed from an operator. In method element 706, one or more signalsrepresentative of at least a portion of the anthropomorphic motion maybe generated, and the one or more signals may be converted into acollective set of commands to actuate the network of robotic devices, asshown in method element 708. The collective set of commands isfunctionally equivalent to the anthropomorphic motion. The method 700may be embodied on a non-transitory computer-readable medium.

FIG. 8 is block diagram 800 illustrating an example of a computingdevice 802 that may be used for discovering content. In particular, thecomputing device 802 is illustrates a high level example of a device onwhich modules of the disclosed technology may be executed. The computingdevice 802 may include one or more processors 804 that are incommunication with memory devices 806. The computing device 802 mayinclude a local communication interface 818 for the components in thecomputing device. For example, the local communication interface may bea local data bus and/or any related address or control busses as may bedesired.

The memory device 806 may contain modules that are executable by theprocessor(s) 804 and data for the modules. Located in the memory device806 are various modules 810 implementing functionality heretoforedescribed. The various modules 810 are executable by the processor(s)804. A data store 808 may also be located in the memory device 806 forstoring data related to the modules and other applications along with anoperating system that is executable by the processor(s) 804.

Other applications may also be stored in the memory device 806 and maybe executable by the processor(s) 804. Components or modules discussedin this description that may be implemented in the form of softwareusing high programming level languages that are compiled, interpreted orexecuted using a hybrid of the methods.

The computing device may also have access to I/O (input/output) devices814 that are usable by the computing devices. An example of an I/Odevice is a display screen 820 that is available to display output fromthe computing devices. Other known I/O device may be used with thecomputing device as desired. Networking devices 816 and similarcommunication devices may be included in the computing device. Thenetworking devices 816 may be wired or wireless networking devices thatconnect to the internet, a LAN, WAN, or other computing network.

The components or modules that are shown as being stored in the memorydevice 806 may be executed by the processor(s) 804. The term“executable” may mean a program file that is in a form that may beexecuted by a processor 804. For example, a program in a higher levellanguage may be compiled into machine code in a format that may beloaded into a random access portion of the memory device 806 andexecuted by the processor 804, or source code may be loaded by anotherexecutable program and interpreted to generate instructions in a randomaccess portion of the memory to be executed by a processor. Theexecutable program may be stored in any portion or component of thememory device 806. For example, the memory device 806 may be randomaccess memory (RAM), read only memory (ROM), flash memory, a solid statedrive, memory card, a hard drive, optical disk, floppy disk, magnetictape, or any other memory components.

The processor 804 may represent multiple processors and the memory 806may represent multiple memory units that operate in parallel to theprocessing circuits. This may provide parallel processing channels forthe processes and data in the system. The local interface 818 may beused as a network to facilitate communication between any of themultiple processors and multiple memories. The local interface 818 mayuse additional systems designed for coordinating communication such asload balancing, bulk data transfer and similar systems.

While the flowcharts presented for this technology may imply a specificorder of execution, the order of execution may differ from what isillustrated. For example, the order of two more blocks may be rearrangedrelative to the order shown. Further, two or more blocks shown insuccession may be executed in parallel or with partial parallelization.In some configurations, one or more blocks shown in the flow chart maybe omitted or skipped. Any number of counters, state variables, warningsemaphores, or messages might be added to the logical flow for purposesof enhanced utility, accounting, performance, measurement,troubleshooting or for similar reasons.

Some of the functional units described in this specification have beenlabeled as modules, in order to more particularly emphasize theirimplementation independence. For example, a module may be implemented asa hardware circuit comprising custom VLSI circuits or gate arrays,off-the-shelf semiconductors such as logic chips, transistors, or otherdiscrete components. A module may also be implemented in programmablehardware devices such as field programmable gate arrays, programmablearray logic, programmable logic devices or the like.

Modules may also be implemented in software for execution by varioustypes of processors. An identified module of executable code may, forinstance, comprise one or more blocks of computer instructions, whichmay be organized as an object, procedure, or function. Nevertheless, theexecutables of an identified module need not be physically locatedtogether, but may comprise disparate instructions stored in differentlocations which comprise the module and achieve the stated purpose forthe module when joined logically together.

Indeed, a module of executable code may be a single instruction or manyinstructions and may even be distributed over several different codesegments, among different programs and across several memory devices.Similarly, operational data may be identified and illustrated hereinwithin modules and may be embodied in any suitable form and organizedwithin any suitable type of data structure. The operational data may becollected as a single data set, or may be distributed over differentlocations including over different storage devices. The modules may bepassive or active, including agents operable to perform desiredfunctions.

The technology described here may also be stored on a computer readablestorage medium that includes volatile and non-volatile, removable andnon-removable media implemented with any technology for the storage ofinformation such as computer readable instructions, data structures,program modules, or other data. Computer readable storage media include,but is not limited to, RAM, ROM, EEPROM, flash memory or other memorytechnology, CD-ROM, digital versatile disks (DVD) or other opticalstorage, magnetic cassettes, magnetic tapes, magnetic disk storage orother magnetic storage devices, or any other computer storage mediumwhich may be used to store the desired information and describedtechnology.

The devices described herein may also contain communication connectionsor networking apparatus and networking connections that allow thedevices to communicate with other devices. Communication connections arean example of communication media. Communication media typicallyembodies computer readable instructions, data structures, programmodules and other data in a modulated data signal such as a carrier waveor other transport mechanism and includes any information deliverymedia. A “modulated data signal” means a signal that has one or more ofits characteristics set or changed in such a manner as to encodeinformation in the signal. By way of example and not limitation,communication media includes wired media such as a wired network ordirect-wired connection and wireless media such as acoustic, radiofrequency, infrared and other wireless media. The term computer readablemedia as used herein includes communication media.

Reference was made to the examples illustrated in the drawings andspecific language was used herein to describe the same. It willnevertheless be understood that no limitation of the scope of thetechnology is thereby intended. Alterations and further modifications ofthe features illustrated herein and additional applications of theexamples as illustrated herein are to be considered within the scope ofthe description.

Furthermore, the described features, structures, or characteristics maybe combined in any suitable manner in one or more examples. In thepreceding description, numerous specific details were provided, such asexamples of various configurations to provide a thorough understandingof examples of the described technology. It will be recognized, however,that the technology may be practiced without one or more of the specificdetails, or with other methods, components, devices, etc. In otherinstances, well-known structures or operations are not shown ordescribed in detail to avoid obscuring aspects of the technology.

Although the subject matter has been described in language specific tostructural features and/or operations, it is to be understood that thesubject matter defined in the appended claims is not necessarily limitedto the specific features and operations described above. Rather, thespecific features and acts described above are disclosed as exampleforms of implementing the claims. Numerous modifications and alternativearrangements may be devised without departing from the spirit and scopeof the described technology.

What is claimed is:
 1. A coordinated robotic control method comprising:under the control of one or more computer systems configured withexecutable instructions: establishing a network of individual autonomousrobotic devices; sensing an anthropomorphic motion from an operator;generating one or more signals representative of at least a portion ofthe anthropomorphic motion; and converting the one or more signals intoa collective set of commands to actuate a plurality of robotic deviceswithin the network of robotic devices, wherein the collective set ofcommands is functionally equivalent to the anthropomorphic motion. 2.The method of claim 1, further comprising communicating the collectiveset of commands to the network of robotic devices.
 3. The method ofclaim 2, wherein communicating the collective set of commands comprisescommunicating to each robotic device in the network of robotic devices arespective subset of commands from the collective set of commands. 4.The method of claim 1, wherein the network of robotic devices comprisesa master robotic device and one or more slave robotic devices, andwherein the master robotic device receives the collective set ofcommands and distributes the collective set of commands to the networkof robotic devices.
 5. The method of claim 1, further comprising:sensing feedback from the network of robotic devices; and presentingsensed feedback to an operator.
 6. The method of claim 5, whereinpresenting sensed feedback to the operator includes at least one ofactuating an operator device, generating audio, or engaging vibratorypads.
 7. The method of claim 5, wherein presenting sensed feedback tothe operator includes visually displaying sensed feedback.
 8. The methodof claim 1 embodied on a non-transitory computer-readable medium.
 9. Acoordinated robotic system comprising: a plurality of control sensors tosense an anthropomorphic motion; a plurality of robotic devices toreceive a command and actuate a motion based on the command; and acoordinated robotic control device, communicatively connected to theplurality of control sensors and the plurality of individual autonomousrobotic devices, to convert the anthropomorphic motion, sensed by theplurality of control sensors, into a collective set of commands toactuate the plurality of robotic devices, wherein the collective set ofcommands is functionally equivalent to the anthropomorphic motion. 10.The system of claim 9, wherein the plurality of control sensors attachto an operator.
 11. The system of claim 9, wherein the plurality ofrobotic devices includes a serpentine robotic crawler.
 12. The system ofclaim 9, wherein the coordinated robotic control device converts theanthropomorphic motion to the collective set of commands with one ormore computer systems configured with executable instructions.
 13. Acoordinated robotic control device comprising: a processor; a memorydevice including instructions to be executed by the processor to performa set of actions; a plurality of control sensors configured to senseanthropomorphic motion; a feedback device configured to receive roboticfeedback; a kinematic convertor configured to convert an anthropomorphicmotion, sensed by the plurality of control sensors, into a collectiveset of commands to actuate degrees of motion by a plurality ofindividual autonomous robotic devices within a network of roboticdevices, wherein the collective set of commands is functionallyequivalent to the anthropomorphic motion; and a communication interfaceconfigured to communicate with the network of robotic devices.
 14. Thedevice of claim 13, wherein the feedback device comprises at least oneof a video display, an audio speaker, or a tactile feedback device. 15.The device of claim 13, wherein feedback received from the feedbackdevice is presented to an operator through a device integrated with atleast one of the plurality of control sensors.
 16. The device of claim13, wherein the plurality of control sensors sense three-dimensionalmotion.
 17. The device of claim 13, wherein an environment isprogrammatically defined for the kinematic convertor which limitsfunctional equivalency.
 18. The device of claim 17, wherein theenvironment is programmatically defined with an extensible markuplanguage (XML) document.